package com.rem.chat.service;

import com.rem.chat.pojo.request.UserStatusModifyRequest;
import com.rem.chat.pojo.request.PageRequest;
import com.rem.chat.pojo.response.LoadAllGroupResponse;
import com.rem.chat.pojo.response.LoadAllUserResponse;

public interface AdminService {
    /**
     * 获取全部用户数据
     * @param param 分页参数
     * @return 全部用户数据
     */
    LoadAllUserResponse loadAllUser(PageRequest param);

    /**
     * 修改用户状态（启用，禁用）
     * @param request 修改状态请求
     * @return 是否修改成功
     */
    Boolean modifyUserStatus(UserStatusModifyRequest request);

    /**
     * 强制用户下线
     * @param userId 用户 id
     * @return 是否下线成功
     */
    Boolean forceOffLine(String userId);

    /**
     * 获取全部群组数据
     * @param param 分页参数
     * @return 全部群组数据
     */
    LoadAllGroupResponse loadAllGroup(PageRequest param);

    /**
     * 解散群组
     * @param groupId 群组 id
     * @param userId 用户id
     * @return 是否解散成功
     */
    Boolean dissolutionGroup(String groupId, String userId);
}
